package object;

public class Demo {
    public static void main(String[] args) {
        /**
         * 第一个常被子类重写的Object中的方法是toString.
         * 原因是
         * 1输出对象的信息更准确
         * 2连接字符串的时候内容有意义
         */
        Point point = new Point(1,2);
        /**
         * 输出一个对象是，实际上输出的是该对象toSting（）方法的字符串。
         * Object定义了toSting方法。目前是讲对象转换为字符串，而返回的字符串格式为：类名@地址
         * 在输出上来讲，这个字符串对开发帮助不大。因此要重写子类的toString方法。
         */
        System.out.println(point);

        String line = "这个对象是："+point;
        System.out.println(line);

        String str = point.toString();
        System.out.println(str);

        /**
         * 另一个常被子类重写的方法equals。
         * 作用是判定两个对象的内容是否相同。
         */
        Point p2 = new Point(1,2);
        System.out.println(point==p2);
        /*
         子类不重写equals时，Object中的equals内容还是“==”比较，因此不重写无意义
         */
        System.out.println(point.equals(p2));

        /**
         * java 提供的类大多数都重写过了toSting和equals方法
         * 只有我们自己定义的类在使用时出现上述情况需要自行重写两个方法
         * 例如：Sting。它的toSting和equals方法已经重写过了。
         */

    }
}
